<?php
namespace app\admin\controller;
use app\admin\controller\Base;
use think\Db;
use think\Request;

class User extends Base
{
    //后台管理员列表页
    public function index()
    {
        //函数助手查询数据
        $list = db('user')->field('u.id, u.username, i.pname, i.uname, i.sex, i.urank, d.phone, d.address_live')->alias('u')->join('user_info i', 'u.id = i.uid')->join('user_data d', 'u.id = d.uid')->order('u.id desc')->paginate(5);
        $this->assign('list', $list);
        // return $this->redirect('index/index/index');
        return $this->fetch('user/index');
    }
    //删除用户操作
    public function del()
    {
        if(db('user')->delete(input('id'))){
            if(db('user_info')->where('uid', input('id'))->delete()){
                if(db('user_data')->where('uid', input('id'))->delete()){
                    $this->success('删除管理员成功！','user/index');
                }else{
                    $this->error('删除用户失败！');
                }
            }else{
                $this->error('删除用户失败！');
            }
        }else{
            $this->error('删除用户失败！');
        }
    }
    //角色浏览(分配角色操作按钮)
    public function rolelist()
    {
        //得到当前用户的id
        $id = input('id');
        //查询当前用户信息
        $user = db('user')->find($id);
        //查询所有角色
        $roles = db('index_role')->select();
        //将角色信息发送
        $this->assign('roles', $roles);
        //查询当前管理员角色信息
        $sql = "select role_name from user u join user_role ur on u.id = ur.user_id join index_role r on ur.f_role_id = r.id where u.id = ".$user['id'];
        $role = Db::query($sql);
        // var_dump($role);
        // die();
        if (!empty($role)) {
            foreach ($role as $k => $v) {
                $arr['role'][] = $v['role_name'];
            }
        } else {
            $arr['role'] = false;
        }
        /*var_dump($roles, $role, $arr);
        die();*/
        //将管理员拥有的角色发送过去
        $this->assign('arr', $arr);
        $this->assign('user', $user);
        return $this->fetch('user/list');
    }
    //保存管理员角色
    public function saverole()
    {
        if (session('admin_user')['id'] != 1) {
            $this->error('没有分配角色权限!');
        }
        $result = Request::instance()->post();
        // var_dump($result);
        // die();
        //判读必须选择一个角色
        if(empty($result['role'])){
            $this->error("请选择一个角色！");
        }
        // die();
        //得到当前管理员的id
        // var_dump($result['id']);
        $uid = $result['id'];
        // die;
        //清除当前用户所有的角色信息，避免重复添加
        Db::table('user_role')->where('user_id', $uid)->delete();
        foreach($result['role'] as $v){
            $data['user_id'] = $uid;
            $data['f_role_id'] = $v;
            //执行添加
            db('user_role')->insert($data);

        }

        $this->success("角色分配成功", 'user/index');
        
    }
}
